---@class Table_GuideVOItem
local Table_GuideVOItem = BaseClass("Table_GuideVOItem", IDataItem)

function Table_GuideVOItem:__ctor()
	---@type number @唯一ID
	self.Id = 0
	---@type number @功能点类型
	self.FunType = 0
	---@type number @优先级
	self.Priority = 0
	---@type number @延时触发
	self.DelayTime = 0
	---@type number @触发等级
	self.UserLv = 0
	---@type boolean @判断组ID
	self.CheckGroupId = false
	---@type boolean @判断标记
	self.JudgeTag = false
	---@type number @组ID
	self.GroupId = 0
	---@type number @前置组ID
	self.PreGroupId = 0
	---@type number @前置引导ID
	self.PreId = 0
	---@type number @后置引导ID
	self.NextId = 0
	---@type boolean @完成标记
	self.Finish = false
	---@type number @完成任务ID
	self.TaskId = 0
	---@type number @打开UIID
	self.OpenUId = 0
	---@type number @关闭UIID
	self.CloseUId = 0
	---@type number @通关副本ID
	self.WinFBId = 0
	---@type number @进入副本ID
	self.EnterFBId = 0
	---@type number[] @道具
	self.Item = {}
	---@type boolean @是否暂停副本
	self.IsPause = false
	---@type boolean @新手关用
	self.IsNewGuideUse = false
	---@type number @界面ID
	self.GotoUId = 0
	---@type number[] @共存UIID
	self.OpenUI = {}
	---@type string @string
	self.Resources = ""
	---@type string @对象路径
	self.GoPath = ""
	---@type string @功能点参数
	self.FunParam = ""
end

function Table_GuideVOItem:Load(reader)
	self.temp = reader:ReadShortString()
	self.Id = tonumber(self.temp)
	self.temp = reader:ReadShortString()
	self.FunType = tonumber(self.temp)
	self.temp = reader:ReadShortString()
	self.Priority = tonumber(self.temp)
	self.temp = reader:ReadShortString()
	self.DelayTime = tonumber(self.temp)
	self.temp = reader:ReadShortString()
	self.UserLv = tonumber(self.temp)
	self.CheckGroupId = reader:ReadBool()
	self.JudgeTag = reader:ReadBool()
	self.temp = reader:ReadShortString()
	self.GroupId = tonumber(self.temp)
	self.temp = reader:ReadShortString()
	self.PreGroupId = tonumber(self.temp)
	self.temp = reader:ReadShortString()
	self.PreId = tonumber(self.temp)
	self.temp = reader:ReadShortString()
	self.NextId = tonumber(self.temp)
	self.Finish = reader:ReadBool()
	self.temp = reader:ReadShortString()
	self.TaskId = tonumber(self.temp)
	self.temp = reader:ReadShortString()
	self.OpenUId = tonumber(self.temp)
	self.temp = reader:ReadShortString()
	self.CloseUId = tonumber(self.temp)
	self.temp = reader:ReadShortString()
	self.WinFBId = tonumber(self.temp)
	self.temp = reader:ReadShortString()
	self.EnterFBId = tonumber(self.temp)
	self.temp = reader:ReadShortString()
	self.Item = Utility.StringToNumbers(self.temp)
	self.IsPause = reader:ReadBool()
	self.IsNewGuideUse = reader:ReadBool()
	self.temp = reader:ReadShortString()
	self.GotoUId = tonumber(self.temp)
	self.temp = reader:ReadShortString()
	self.OpenUI = Utility.StringToNumbers(self.temp)
	self.Resources = reader:ReadString()
	self.GoPath = reader:ReadString()
	self.FunParam = reader:ReadString()
end

---@class Table_GuideVOMgr : IDataMgr
local this = BaseClass("Table_GuideVOMgr", IDataMgr)

function this:FileName()
	return "Txt/GuideVO.txt"
end

---@return Table_GuideVOItem
function this:GetItemByKey(key)
	return self.super.GetItemByKey(self, key)
end

---@return Table_GuideVOItem
function this:GetItemByIdx(idx)
	return self.super.GetItemByIdx(self, idx)
end

function this:Load(reader)
	local item = Table_GuideVOItem()
	item:Load(reader)
	self.mItemDic[item.Id] = self.mDataCount
	table.insert(self.mItemList, item)
end

---@type Table_GuideVOMgr
Table_GuideVOMgr = this()